// Package config 包含了应用程序的配置相关功能。
package config

// 导入 spf13/viper 包，用于配置管理。
import (
	"github.com/spf13/viper"
)

// Config 是一个全局变量，用于存储 viper.Viper 实例。
// 该实例用于访问应用程序的配置信息。
var Config *viper.Viper

// InitConfig 初始化配置信息。
// 使用 viper 库来读取和解析配置文件。
// 配置文件名为 "config.yaml"，位于 "config" 目录下。
func InitConfig() {
	// 创建一个新的 viper 实例。
	v := viper.New()

	// 设置配置文件名为 "config"，不带后缀。
	v.SetConfigName("config")

	// 设置配置文件类型为 "yaml"。
	v.SetConfigType("yaml")

	// 添加配置文件搜索路径，这里指定为 "config" 目录。
	v.AddConfigPath("config")

	// 尝试读取和解析配置文件。
	// 如果发生错误，抛出 panic。
	if err := v.ReadInConfig(); err != nil {
		panic(err)
	}

	// 将解析后的配置信息赋值给全局变量 Config。
	Config = v
}
